pacman::p_load("tidyverse", "here", "glue", "colorspace", "sf", "geojson", "pdftools")
grid <- read_csv(here("data", "de_constituencies_grid.csv")) %>%
mutate(id_num = as.numeric(id))
Source:
btw_raw <- read_csv(here("data", "btw21_DieZeit.csv"))
btw_clean <- btw_raw %>%
mutate(
winner_de = case_when(
party == "CDU" ~ "CDU",
party == "SPD" ~ "SPD",
party == "Grüne" ~ "Bündnis 90/Die Grünen",
party == "FDP" ~ "FDP",
party == "AfD" ~ "AfD",
party == "Linke" ~ "Die Linke",
party == "CSU" ~ "CSU",
TRUE ~ "Andere"
),
winner_en = case_when(
party == "Grüne" ~ "Alliance 90/The Greens",
party == "Linke" ~ "The Left",
winner_de == "Andere" ~ "Other",
TRUE ~ winner_de
),
winner_de = factor(winner_de, levels = c("SPD", "CDU", "CSU", "Bündnis 90/Die Grünen",
"FDP", "AfD", "Die Linke", "Andere")),
winner_en = factor(winner_en, levels = c("SPD", "CDU", "CSU", "Alliance 90/The Greens",
"FDP", "AfD", "The Left", "Other"))
)
btw_first <-
btw_clean %>%
group_by(electoral_id) %>%
arrange(-first_percent) %>%
slice(1:2) %>%
mutate(rank = row_number()) %>%
dplyr::select(electoral_id, first_percent, winner_de, winner_en, rank) %>%
pivot_wider(
id_cols = c(electoral_id),
names_from = rank,
values_from = c(first_percent, winner_de, winner_en)
) %>%
mutate(
winner_first_de = winner_de_1,
winner_first_en = winner_en_1,
follow_first_de = winner_de_2,
follow_first_en = winner_en_2,
winner_first_percent = first_percent_1,
follow_first_percent = first_percent_2,
difference_first_percent = first_percent_1 - first_percent_2
) %>%
dplyr::select(-ends_with("_1"), -ends_with("_2"))
btw_second <-
btw_clean %>%
group_by(electoral_id) %>%
arrange(-second_percent) %>%
slice(1:2) %>%
mutate(rank = row_number()) %>%
dplyr::select(electoral_id, second_percent, winner_de, winner_en, rank) %>%
pivot_wider(
id_cols = c(electoral_id),
names_from = rank,
values_from = c(second_percent, winner_de, winner_en)
) %>%
mutate(
winner_second_de = winner_de_1,
winner_second_en = winner_en_1,
follow_second_de = winner_de_2,
follow_second_en = winner_en_2,
winner_second_percent = second_percent_1,
follow_second_percent = second_percent_2,
difference_second_percent = second_percent_1 - second_percent_2
) %>%
dplyr::select(-ends_with("_1"), -ends_with("_2"))
theme_set(theme_void(base_family = "Noto Serif")) #Editorial New, Noto Serif
theme_update(legend.margin = margin(0, 10, 0, 25),
legend.title = element_text(size = 16, margin = margin(15, 0, 1, 0),
family = "Chivo", face = "bold"),
legend.text = element_text(size = 16, margin = margin(5, 0, 5, -2.5),
family = "Chivo"),
plot.title = element_text(hjust = .5, face = "bold", size = 28,
lineheight = 1.1, margin = margin(t = 10, b = 20)),
plot.subtitle = element_text(hjust = .5, color = "grey33", size = 16,
margin = margin(t = -15, b = 18)),
plot.title.position = "plot",
plot.caption = element_text(hjust = 0, color = "grey33",
lineheight = 1.3,
size = 12, margin = margin(20, 0, 5, 5)),
plot.caption.position = "plot",
plot.margin = margin(10, 0, 10, 0))
# Party colors
party_colors <- c("SPD" = "#ca0002", ##"#E3000F", a bit darker now to make it work better with CVD
"CDU" = "#212121",
"CSU" = "grey33", ## "#464662"
"Bündnis 90/Die Grünen" = rgb(100, 161, 45, maxColorValue = 255),
"FDP" = darken("#ffed00", 0.1),
"AfD" = rgb(0, 158, 224, maxColorValue = 255),
"Die Linke" = "purple",
"Andere" = "grey74")
party_colors_first <- party_colors[c(1, 2, 3, 4, 6, 7)]
party_colors_second <- party_colors[c(1, 2, 3, 4, 6)]
parties_first_en <- c("SPD", "CDU", "CSU", "Alliance 90/The Greens", "AfD", "The Left")
parties_second_en <- c("SPD", "CDU", "CSU", "Alliance 90/The Greens", "AfD")
title_de <- "Ergebnisse der Bundestagswahl 2021"
title_en <- "Results of the German National Election 2021"
caption_de <- "Grafik: Cédric Scherer & Ansgar Wolsing • Daten: DIE ZEIT"
caption_en <- "Graphic: Cédric Scherer & Ansgar Wolsing • Source: DIE ZEIT"
g <-
ggplot(grid_btw, aes(col, row)) +
coord_fixed() +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4)) +
scale_y_reverse(expand = c(.03, .03)) +
scale_color_manual(values = party_colors_first, name = NULL) +
scale_fill_manual(values = party_colors_first, name = NULL) +
guides(color = guide_legend(override.aes = list(size = 6)),
fill = guide_legend(override.aes = list(size = 6))) +
theme(legend.position = c(.82, .27))
subtitle_first_de <- "Die stärksten Parteien nach Erststimmen."
subtitle_first_en <- "The winner parties by first votes."
g_tile_winner <- g +
geom_point(
aes(color = winner_first_de),
size = 11, shape = 15
)
## Deutsche Version
g_tile_winner + labs(title = title_de, subtitle = subtitle_first_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_winner_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_winner + labs(title = title_en, subtitle = subtitle_first_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_winner_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_tile_winner_id <- g_tile_winner +
geom_text(
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
# geom_text(
# aes(label = id),
# size = 3.2, family = "Chivo",
# color = "#fefefe", fontface = "bold"
# )
## Deutsche Version
g_tile_winner_id + labs(title = title_de, subtitle = subtitle_first_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_winner_id + labs(title = title_en, subtitle = subtitle_first_en, caption = caption_en) +
scale_color_manual(values = party_colors_first, name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner <- g +
geom_point(aes(color = winner_first_de), size = 10)
## Deutsche Version
g_dot_winner + labs(title = title_de, subtitle = subtitle_first_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner + labs(title = title_en, subtitle = subtitle_first_en, caption = caption_en) +
scale_color_manual(values = party_colors_first,
name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner_id <- g_dot_winner +
geom_text(
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .35))),
size = 3.1, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_winner_id + labs(title = title_de, subtitle = subtitle_first_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner_id + labs(title = title_en, subtitle = subtitle_first_en, caption = caption_en) +
scale_color_manual(values = party_colors_first, name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner_light <- g +
geom_point(
aes(fill = winner_first_de),
size = 8.6, shape = 21, stroke = 1.4, alpha = .5, color = "transparent"
) +
geom_point(
aes(color = winner_first_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent"
) +
guides(color = guide_legend(override.aes = list(size = 5.5)))
## Deutsche Version
g_dot_winner_light + labs(title = title_de, subtitle = subtitle_first_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_de_light.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner_light + labs(title = title_en, subtitle = subtitle_first_en, caption = caption_en) +
scale_color_manual(values =party_colors_first,
name = NULL, labels = parties_first_en) +
scale_fill_manual(values = party_colors_first,
name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_winner_en_light.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## READ GEOMETRY ==============================================
#' https://pitchinteractiveinc.github.io/tilegrams/
#' Download geometry "Germany - Constituencies" as TopoJSON
#' and place it in the data directory
filepath_topo <- here("data", "tiles.topo.json")
wk_topo <- geojsonio::topojson_read(filepath_topo)
wk_topo <- wk_topo %>% mutate(id = as.numeric(id))
# Merge shapes of constituencies into state-level shapes
bland_shape <- wk_topo %>%
inner_join(grid_btw, by = c("id" = "id_num")) %>%
group_by(bundesland_de) %>%
summarize(geometry = st_union(geometry))
g_hex <- grid_btw %>%
inner_join(wk_topo, by = c("id_num" = "id")) %>%
ggplot(aes(geometry = geometry)) +
geom_sf(
aes(fill = winner_first_de),
size = .3, col = "grey85"
) +
geom_sf_text(
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_sf(
data = bland_shape,
aes(geometry = geometry,
group = bundesland_de),
fill = NA, col = "#fefefe",
size = 2.3, show.legend = FALSE
) +
geom_sf(
aes(fill = winner_first_de),
size = .5, fill = NA, col = "grey85",
) +
scale_x_continuous(expand = c(.1, .1)) +
scale_y_continuous(expand = c(.01, .01)) +
scale_color_manual(values = party_colors_first, guide = "none") +
scale_fill_manual(values = party_colors_first, name = NULL) +
guides(fill = guide_legend(override.aes = list(size = 0.25))) +
theme(legend.position = c(.16, .92),
legend.key.size = unit(5, "mm"))
## Deutsche Version
g_hex +
labs(title = title_de, subtitle = subtitle_first_de,
caption = glue("{caption_de}\nTilegram-Geometrie: pitchinteractiveinc.github.io"))
ggsave(here("plots", "btw21", "first-votes", "btw21_hexagon_map_first_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_hex +
labs(title = title_en, subtitle = subtitle_first_en,
caption = glue("{caption_en}\nTilegram-Geometrie: pitchinteractiveinc.github.io")) +
scale_fill_manual(values = party_colors_first,
name = NULL, labels = parties_first_en)
ggsave(here("plots", "btw21", "first-votes", "btw21_hexagon_map_first_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
subtitle_first_diff_de <- "Die stärksten Parteien nach Erststimmen und Vorsprung zur zweitplatzierten Partei."
subtitle_first_diff_en <- "The winner parties by first votes and lead over the second-placed party."
g_tile_diff <- g +
geom_point(
aes(color = winner_first_de, alpha = difference_first_percent),
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Vorsprung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_tile_diff + labs(title = title_de, subtitle = subtitle_first_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_diff_de.pdf"), width = 10, height = 11.3, device = cairo_pdf)
## Englische Version
g_tile_diff + labs(title = title_en, subtitle = subtitle_first_diff_en, caption = caption_en) +
scale_color_manual(values = party_colors_first, name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_diff_en.pdf"), width = 10, height = 11.3, device = cairo_pdf)
g_tile_diff_id <- g_tile_diff +
geom_text(
data = filter(grid_btw, difference_first_percent > 15),
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .65))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, difference_first_percent <= 15),
aes(label = id, color = winner_first_de,
color = after_scale(darken(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_tile_diff_id +
labs(title = title_de, subtitle = subtitle_first_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_diff_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_id +
labs(title = title_en, subtitle = subtitle_first_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_diff_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff <- g +
geom_point(
aes(color = winner_first_de, alpha = difference_first_percent),
size = 8.6, shape = 16
) +
geom_point(
aes(color = winner_first_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent", show.legend = FALSE
) +
scale_alpha(range = c(.25, .85), name = "Vorsprung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 6, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 6), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_dot_diff +
labs(title = title_de, subtitle = subtitle_first_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_diff_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_diff +
labs(title = title_en, subtitle = subtitle_first_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first,
name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, .85), name = "Vorsprung:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_diff_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff_id <- g_dot_diff +
geom_text(
data = filter(grid_btw, difference_first_percent > 15),
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .65))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, difference_first_percent <= 15),
aes(label = id, color = winner_first_de,
color = after_scale(darken(color, .35))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_diff_id +
labs(title = title_de, subtitle = subtitle_first_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_diff_de_id.pdf"), width = 10, height = 12, device = cairo_pdf)
## Englische Version
g_dot_diff_id +
labs(title = title_en, subtitle = subtitle_first_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_diff_en_id.pdf"), width = 10, height = 12, device = cairo_pdf)
subtitle_first_votes_de <- "Die stärksten Parteien nach Prozent der Erststimmen."
subtitle_first_votes_en <- "The winner parties by percentage of first votes."
g_tile_diff <- g +
geom_point(
aes(color = winner_first_de, alpha = winner_first_percent),
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Erststimmen:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_tile_diff + labs(title = title_de, subtitle = subtitle_first_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_votes_de.pdf"), width = 10, height = 11.3, device = cairo_pdf)
## Englische Version
g_tile_diff + labs(title = title_en, subtitle = subtitle_first_votes_en, caption = caption_en) +
scale_color_manual(values = party_colors_first, name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_votes_en.pdf"), width = 10, height = 11.3, device = cairo_pdf)
g_tile_diff_id <- g_tile_diff +
geom_text(
data = filter(grid_btw, winner_first_percent > 15),
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .65))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, winner_first_percent <= 15),
aes(label = id, color = winner_first_de,
color = after_scale(darken(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_tile_diff_id +
labs(title = title_de, subtitle = subtitle_first_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_votes_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_id +
labs(title = title_en, subtitle = subtitle_first_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_tile_grid_map_first_votes_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff <- g +
geom_point(
aes(color = winner_first_de, alpha = winner_first_percent),
size = 8.6, shape = 16
) +
geom_point(
aes(color = winner_first_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent", show.legend = FALSE
) +
scale_alpha(range = c(.25, .85), name = "Erststimmen:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 6, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 6), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_dot_diff +
labs(title = title_de, subtitle = subtitle_first_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_votes_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_diff +
labs(title = title_en, subtitle = subtitle_first_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first,
name = NULL, labels = parties_first_en) +
scale_alpha(range = c(.25, .85), name = "Erststimmen:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_votes_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff_id <- g_dot_diff +
geom_text(
data = filter(grid_btw, winner_first_percent > 15),
aes(label = id, color = winner_first_de,
color = after_scale(lighten(color, .65))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, winner_first_percent <= 15),
aes(label = id, color = winner_first_de,
color = after_scale(darken(color, .35))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_diff_id +
labs(title = title_de, subtitle = subtitle_first_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_votes_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_diff_id +
labs(title = title_en, subtitle = subtitle_first_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_first_en)
ggsave(here::here("plots", "btw21", "first-votes", "btw21_dot_grid_map_first_votes_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g <-
ggplot(grid_btw, aes(col, row)) +
coord_fixed() +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4)) +
scale_y_reverse(expand = c(.03, .03)) +
scale_color_manual(values = party_colors_second, name = NULL) +
scale_fill_manual(values = party_colors_second, name = NULL) +
guides(color = guide_legend(override.aes = list(size = 6)),
fill = guide_legend(override.aes = list(size = 6))) +
theme(legend.position = c(.82, .27))
subtitle_second_de <- "Die stärksten Parteien nach Zweitstimmen."
subtitle_second_en <- "The winner parties by second votes."
g_tile_winner <- g +
geom_point(
aes(color = winner_second_de),
size = 11, shape = 15
)
## Deutsche Version
g_tile_winner + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_winner + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_color_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_true_tile_winner <- g +
geom_tile(
aes(fill = winner_second_de, color = after_scale(fill)),
size = 0
)
## Deutsche Version
g_true_tile_winner + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_de_true.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_true_tile_winner + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_en_true.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_tile_winner_id <- g_tile_winner +
geom_text(
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
# geom_text(
# aes(label = id),
# size = 3.2, family = "Chivo",
# color = "#fefefe", fontface = "bold"
# )
## Deutsche Version
g_tile_winner_id + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_winner_id + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_color_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner <- g +
geom_point(aes(color = winner_second_de), size = 10)
## Deutsche Version
g_dot_winner + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_color_manual(values = party_colors_second,
name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner_id <- g_dot_winner +
geom_text(
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .35))),
size = 3.1, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_winner_id + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner_id + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_color_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_winner_light <- g +
geom_point(
aes(fill = winner_second_de),
size = 8.6, shape = 21, stroke = 1.4, alpha = .5, color = "transparent"
) +
geom_point(
aes(color = winner_second_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent"
) +
guides(color = guide_legend(override.aes = list(size = 5.5)))
## Deutsche Version
g_dot_winner_light + labs(title = title_de, subtitle = subtitle_second_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_de_light.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_winner_light + labs(title = title_en, subtitle = subtitle_second_en, caption = caption_en) +
scale_color_manual(values =party_colors_second,
name = NULL, labels = parties_second_en) +
scale_fill_manual(values = party_colors_second,
name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_winner_en_light.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_hex <- grid_btw %>%
inner_join(wk_topo, by = c("id_num" = "id")) %>%
ggplot(aes(geometry = geometry)) +
geom_sf(
aes(fill = winner_second_de),
size = .3, col = "grey85"
) +
geom_sf_text(
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_sf(
data = bland_shape,
aes(geometry = geometry,
group = bundesland_de),
fill = NA, col = "#fefefe",
size = 2.3, show.legend = FALSE
) +
geom_sf(
aes(fill = winner_second_de),
size = .5, fill = NA, col = "grey85",
) +
scale_x_continuous(expand = c(.1, .1)) +
scale_y_continuous(expand = c(.01, .01)) +
scale_color_manual(values = party_colors_second, guide = "none") +
scale_fill_manual(values = party_colors_second, name = NULL) +
guides(fill = guide_legend(override.aes = list(size = 0.25))) +
theme(legend.position = c(.16, .92),
legend.key.size = unit(5, "mm"))
## Deutsche Version
g_hex +
labs(title = title_de, subtitle = subtitle_second_de,
caption = glue("{caption_de}\nTilegram-Geometrie: pitchinteractiveinc.github.io"))
ggsave(here("plots", "btw21", "second-votes", "btw21_hexagon_map_second_winner_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_hex +
labs(title = title_en, subtitle = subtitle_second_en,
caption = glue("{caption_en}\nTilegram-Geometrie: pitchinteractiveinc.github.io")) +
scale_fill_manual(values = party_colors_second,
name = NULL, labels = parties_second_en)
ggsave(here("plots", "btw21", "second-votes", "btw21_hexagon_map_second_winner_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
subtitle_second_diff_de <- "Die stärksten Parteien nach Zweitstimmen und Vorsprung zur zweitplatzierten Partei."
subtitle_second_diff_en <- "The winner parties by second votes and lead over the second-placed party."
g_tile_diff <- g +
geom_point(
aes(color = winner_second_de, alpha = difference_second_percent),
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Vorsprung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_tile_diff + labs(title = title_de, subtitle = subtitle_second_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_diff_de.pdf"), width = 10, height = 11.3, device = cairo_pdf)
## Englische Version
g_tile_diff + labs(title = title_en, subtitle = subtitle_second_diff_en, caption = caption_en) +
scale_color_manual(values = party_colors_second, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_diff_en.pdf"), width = 10, height = 11.3, device = cairo_pdf)
g_tile_diff_id <- g_tile_diff +
geom_text(
data = filter(grid_btw, difference_second_percent > 13),
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .65))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, difference_second_percent <= 13),
aes(label = id, color = winner_second_de,
color = after_scale(darken(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_tile_diff_id +
labs(title = title_de, subtitle = subtitle_second_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_diff_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_id +
labs(title = title_en, subtitle = subtitle_second_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_diff_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff <- g +
geom_point(
aes(color = winner_second_de, alpha = difference_second_percent),
size = 8.6, shape = 16
) +
geom_point(
aes(color = winner_second_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent", show.legend = FALSE
) +
scale_alpha(range = c(.25, .85), name = "Vorsprung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 6, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 6), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_dot_diff +
labs(title = title_de, subtitle = subtitle_second_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_diff_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_diff +
labs(title = title_en, subtitle = subtitle_second_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second,
name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, .85), name = "Vorsprung:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_diff_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff_id <- g_dot_diff +
geom_text(
data = filter(grid_btw, difference_second_percent > 12),
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .65))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, difference_second_percent <= 12),
aes(label = id, color = winner_second_de,
color = after_scale(darken(color, .35))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_diff_id +
labs(title = title_de, subtitle = subtitle_second_diff_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_diff_de_id.pdf"), width = 10, height = 12, device = cairo_pdf)
## Englische Version
g_dot_diff_id +
labs(title = title_en, subtitle = subtitle_second_diff_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_diff_en_id.pdf"), width = 10, height = 12, device = cairo_pdf)
subtitle_second_votes_de <- "Die stärksten Parteien nach Prozent der Zweitstimmen."
subtitle_second_votes_en <- "The winner parties by percentage of second votes."
g_tile_diff <- g +
geom_point(
aes(color = winner_second_de, alpha = winner_second_percent),
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Zweitstimmen:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_tile_diff + labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_votes_de.pdf"), width = 10, height = 11.3, device = cairo_pdf)
## Englische Version
g_tile_diff + labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_color_manual(values = party_colors_second, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_votes_en.pdf"), width = 10, height = 11.3, device = cairo_pdf)
g_tile_diff_id <- g_tile_diff +
geom_text(
data = filter(grid_btw, winner_second_percent > 30),
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .65))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, winner_second_percent <= 30),
aes(label = id, color = winner_second_de,
color = after_scale(darken(color, .35))),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_tile_diff_id +
labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_votes_de_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_id +
labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Lead:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_tile_grid_map_second_votes_en_id.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff <- g +
geom_point(
aes(color = winner_second_de, alpha = winner_second_percent),
size = 8.6, shape = 16
) +
geom_point(
aes(color = winner_second_de),
size = 8.6, shape = 21, stroke = 1.4, fill = "transparent", show.legend = FALSE
) +
scale_alpha(range = c(.25, .85), name = "Zweitstimmen:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 6, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 6), order = 2)) +
theme(legend.position = c(.83, .2))
## Deutsche Version
g_dot_diff +
labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_votes_de.pdf"), width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_dot_diff +
labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second,
name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, .85), name = "Zweitstimmen:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_votes_en.pdf"), width = 10, height = 11.7, device = cairo_pdf)
g_dot_diff_id <- g_dot_diff +
geom_text(
data = filter(grid_btw, winner_second_percent > 30),
aes(label = id, color = winner_second_de,
color = after_scale(lighten(color, .65))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
geom_text(
data = filter(grid_btw, winner_second_percent <= 30),
aes(label = id, color = winner_second_de,
color = after_scale(darken(color, .35))),
size = 2.8, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_dot_diff_id +
labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_votes_de_id.pdf"), width = 10, height = 12, device = cairo_pdf)
## Englische Version
g_dot_diff_id +
labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_second, name = NULL, labels = parties_second_en)
ggsave(here::here("plots", "btw21", "second-votes", "btw21_dot_grid_map_second_votes_en_id.pdf"), width = 10, height = 12, device = cairo_pdf)
pdfs <- list.files(here::here('plots', 'btw21'), pattern = "*.pdf", recursive = TRUE)
for(pdf in pdfs) {
pdf_convert(pdf = glue::glue("{here::here('plots', 'btw21')}/{pdf}"),
filenames = glue::glue("{here::here('plots', 'btw21')}/{str_remove(pdf, '.pdf')}.png"),
format = "png", dpi = 500)
}
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/btw21_tile_grid_map_second_winner_de_id_cvd.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_diff_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_diff_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_diff_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_diff_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_votes_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_votes_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_votes_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_votes_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_de_light.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_en_light.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_dot_grid_map_first_winner_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_hexagon_map_first_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_hexagon_map_first_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_diff_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_diff_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_diff_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_diff_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_votes_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_votes_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_votes_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_votes_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_winner_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/first-votes/btw21_tile_grid_map_first_winner_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_diff_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_diff_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_diff_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_diff_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_votes_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_votes_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_votes_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_votes_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_de_light.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_en_light.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_dot_grid_map_second_winner_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_hexagon_map_second_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_hexagon_map_second_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_diff_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_diff_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_diff_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_diff_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_votes_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_votes_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_votes_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_votes_en.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_de_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_de_true.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_de.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_en_id.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_en_true.png... done!
Converting page 1 to /Users/ansgar/Documents/Repositories/btw_tilemap/plots/btw21/second-votes/btw21_tile_grid_map_second_winner_en.png... done!
# TODO: Chart-Titel
char_arrow_up <- "\u25B2"
char_arrow_down <- "\u25BC"
char_level <- "-"
parties <- list(c("CDU", "CSU"), "SPD", "Grüne", "FDP", "AfD", "Linke")
for (party_selected in parties) {
party_selected_color <- case_when(
party_selected %in% c("CDU", "CSU") ~ "CDU",
party_selected == "Grüne" ~ "Bündnis 90/Die Grünen",
party_selected == "Linke" ~ "Die Linke",
TRUE ~ party_selected
)[1]
g <- btw_clean %>%
filter(party %in% party_selected) %>%
select(electoral_id, name, party, second_percent, second_difference) %>%
mutate(second_difference_abs = abs(second_difference)) %>%
left_join(grid, by = c("electoral_id" = "id_num")) %>%
ggplot(aes(col, row)) +
coord_fixed() +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4)) +
scale_y_reverse(expand = c(.03, .03)) +
scale_color_manual(values = party_colors_first, name = NULL) +
scale_fill_manual(values = party_colors_first, name = NULL) +
guides(color = guide_legend(override.aes = list(size = 6)),
fill = guide_legend(override.aes = list(size = 6))) +
theme(legend.position = c(.82, .27))
g_tile_diff <- g +
geom_point(
aes(alpha = second_difference_abs),
color = party_colors[party_selected_color],
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Absolute Veränderung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
g_tile_diff_sign <- g_tile_diff +
geom_text(
aes(label = case_when(
second_difference > 0 ~ char_arrow_up,
second_difference < 0 ~ char_arrow_down,
is.na(second_difference) ~ "", # für die Grünen im Saarland
TRUE ~ char_level),
alpha = second_difference_abs),
color = "white",
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
)
## Deutsche Version
g_tile_diff_sign +
labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", glue("btw21_tile_grid_map_second_trend_{party_selected[1]}_de.pdf")),
width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_sign +
labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Absolute Change:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", glue("btw21_tile_grid_map_second_trend_{party_selected[1]}_en.pdf")),
width = 10, height = 11.7, device = cairo_pdf)
}
# TODO: Chart-Titel
char_arrow_up <- "\u25B2"
char_arrow_down <- "\u25BC"
char_level <- "-"
parties <- list(c("CDU", "CSU"), "SPD", "Grüne", "FDP", "AfD", "Linke")
for (party_selected in parties) {
party_selected_color <- case_when(
party_selected %in% c("CDU", "CSU") ~ "CDU",
party_selected == "Grüne" ~ "Bündnis 90/Die Grünen",
party_selected == "Linke" ~ "Die Linke",
TRUE ~ party_selected
)[1]
g <- btw_clean %>%
filter(party %in% party_selected) %>%
select(electoral_id, name, party, second_percent, second_difference) %>%
mutate(second_difference_abs = abs(second_difference)) %>%
left_join(grid, by = c("electoral_id" = "id_num")) %>%
ggplot(aes(col, row)) +
coord_fixed() +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4)) +
scale_y_reverse(expand = c(.03, .03)) +
# scale_color_manual(values = party_colors_first, name = NULL) +
scale_fill_manual(values = party_colors_first, name = NULL) +
guides(color = guide_legend(override.aes = list(size = 6)),
fill = guide_legend(override.aes = list(size = 6))) +
theme(legend.position = c(.82, .27))
g_tile_diff <- g +
geom_point(
aes(alpha = second_difference_abs),
color = party_colors[party_selected_color],
size = 11, shape = 15
) +
scale_x_continuous(limits = c(-.5, max(grid$col) + 4.5)) +
scale_alpha(range = c(.25, 1), name = "Absolute Veränderung:", labels = scales::percent_format(scale = 1)) +
guides(color = guide_legend(override.aes = list(size = 8, alpha = .7), order = 1),
alpha = guide_legend(override.aes = list(size = 8), order = 2)) +
theme(legend.position = c(.83, .2))
g_tile_diff_sign <- g_tile_diff +
geom_text(
aes(label = case_when(
second_difference > 0 ~ char_arrow_up,
second_difference < 0 ~ char_arrow_down,
is.na(second_difference) ~ "", # für die Grünen im Saarland
TRUE ~ char_level),
color = case_when(
second_difference > 0 ~ "white",
second_difference < 0 ~ "grey8"),
alpha = second_difference_abs),
size = 3.2, family = "Chivo", fontface = "bold",
show.legend = FALSE
) +
scale_color_identity()
## Deutsche Version
g_tile_diff_sign +
labs(title = title_de, subtitle = subtitle_second_votes_de, caption = caption_de)
ggsave(here::here("plots", "btw21", "second-votes", glue("btw21_tile_grid_map_second_trend_{party_selected[1]}_de.pdf")),
width = 10, height = 11.7, device = cairo_pdf)
## Englische Version
g_tile_diff_sign +
labs(title = title_en, subtitle = subtitle_second_votes_en, caption = caption_en) +
scale_fill_manual(values = party_colors_first, name = NULL, labels = parties_second_en) +
scale_alpha(range = c(.25, 1), name = "Absolute Change:", labels = scales::percent_format(scale = 1))
ggsave(here::here("plots", "btw21", "second-votes", glue("btw21_tile_grid_map_second_trend_{party_selected[1]}_en.pdf")),
width = 10, height = 11.7, device = cairo_pdf)
}
Sys.time()
[1] "2021-09-27 23:53:59 CEST"
R version 4.1.1 (2021-08-10)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Big Sur 11.4
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] pdftools_3.0.1 geojson_0.3.4 sf_1.0-2
[4] colorspace_2.0-2 glue_1.4.2 here_1.0.1
[7] forcats_0.5.1 stringr_1.4.0 dplyr_1.0.7
[10] purrr_0.3.4 readr_2.0.1 tidyr_1.1.3
[13] tibble_3.1.4 ggplot2_3.3.5 tidyverse_1.3.1
loaded via a namespace (and not attached):
[1] fs_1.5.0 lubridate_1.7.10 bit64_4.0.5
[4] httr_1.4.2 rprojroot_2.0.2 tools_4.1.1
[7] backports_1.2.1 bslib_0.2.5.1 utf8_1.2.2
[10] R6_2.5.1 KernSmooth_2.23-20 rgeos_0.5-7
[13] DBI_1.1.1 lazyeval_0.2.2 withr_2.4.2
[16] sp_1.4-5 tidyselect_1.1.1 downlit_0.2.1
[19] curl_4.3.2 bit_4.0.4 compiler_4.1.1
[22] textshaping_0.3.5 cli_3.0.1 rvest_1.0.1
[25] pacman_0.5.1 geojsonsf_2.0.1 xml2_1.3.2
[28] labeling_0.4.2 sass_0.4.0 scales_1.1.1
[31] classInt_0.4-3 proxy_0.4-26 askpass_1.1
[34] systemfonts_1.0.2 digest_0.6.27 foreign_0.8-81
[37] rmarkdown_2.10 pkgconfig_2.0.3 htmltools_0.5.1.1
[40] highr_0.9 dbplyr_2.1.1 rlang_0.4.11
[43] readxl_1.3.1 httpcode_0.3.0 rstudioapi_0.13
[46] farver_2.1.0 jquerylib_0.1.4 generics_0.1.0
[49] jsonlite_1.7.2 vroom_1.5.4 distill_1.2
[52] magrittr_2.0.1 Rcpp_1.0.7 munsell_0.5.0
[55] fansi_0.5.0 lifecycle_1.0.0 stringi_1.7.3
[58] yaml_2.2.1 jqr_1.2.1 maptools_1.1-1
[61] grid_4.1.1 parallel_4.1.1 geojsonio_0.9.4
[64] crayon_1.4.1 lattice_0.20-44 haven_2.4.3
[67] hms_1.1.0 knitr_1.33 pillar_1.6.2
[70] crul_1.1.0 reprex_2.0.1 evaluate_0.14
[73] V8_3.4.2 qpdf_1.1 modelr_0.1.8
[76] vctrs_0.3.8 tzdb_0.1.2 cellranger_1.1.0
[79] gtable_0.3.0 assertthat_0.2.1 xfun_0.25
[82] broom_0.7.9 e1071_1.7-9 ragg_1.1.3
[85] class_7.3-19 units_0.7-2 ellipsis_0.3.2